package dse.messages;

public enum MessageType {
	Affermative,
	Negative,
	
	//RequestShareLocal,
	LocateClustersWithDataObject,
	HasShare,
	Redirect,
	RequestShareForeign,
	ShareDataTransfer,
	ClustersThatMightHaveDataObject,
	
	//BloomFilterRequest,
	//BloomFilterDataTransfer,
	
	UpdateOnRecentLocalRequests,
	
	//GetDataObjectInfo,
	DataObjectInfoResponse,
	
	CanAddDataShare,
	DownloadAndCacheShare,
	ActivateCachedShare,
	
	/**
	 * This is used in the DHT-only scheme and in the mixed-no-shares scheme for
	 * requesting a data object from another cluster.
	 */
	RequestDataObject,
	/**
	 * This is used in the mixed-no-shares scheme to contact a node in the 
	 * local cluster who will then try to find the actual data object host in 
	 * a foreign cluster. 
	 */
	RequestDataObjectLocal,
	HasDataObject,
	DataObjectTransfer,
	
	DownloadAndCacheDataObject,
	
	//Add later
	RequestShare,
	UpdateShare,
	UpdateConfirm,
	ActivateUpdateShare,
	
	RequestVersion,
	VersionResponse,
	ShareDownload,
	ShareUpdate,
	RequestLatestShare,
	RequestPreviousShare,
	
	ShareUpdateV2,
	RequestLatestShareV2,
	RequestPreviousShareV2,
	
	RequestVersionV3,
	VersionResponseV3,
	ShareUpdateV3,
	UpdateSuccessV3,
	RemoveOldVersionV3,
	
	ShareUpdateV4,
	ShareUpdateV4Response,
	
	RequestVersionQuorum,
	VersionResponseQuorum,
	ShareUpdateV5,
	ShareUpdateV5Response,
	
	ReadRequest,
	ReadRequestResponse,
	RequestShareV2,
	RequestLock,
	RequestLockResponse,
	ReleaseLock,
	
	ShareUpdateV6,
	ShareUpdateV6Response,
	
	RequestDesignatedShare,
	RequestMaxTS,
	RequestLatestAndVersion,
	LatestAndVersionResponse,
	RequestLatestAndVersionV2,
	LatestAndVersionResponseV2,
	
	RequestUpdateLock,
	UpdateLockResponse,
	ReleaseUpdateLock,
	RequestVersionRep,
	TurnVersionRepOn,
	RequestDesignatedShareRep,
	
	ReadComplete,
	
	RequestVersionTLO,
	ShareUpdateTLO,
	UpdateSuccessTLO,
	SVR,
	RequestDesignatedShareTLO,
	ReadCompleteTLO,
	
	ShareUpdateCVS,
	
	//osv
	ShareUpdateOSV,
	SendMAC,

	RequestLCShare,
	RequestShareWithVersion,
	
	//Hen07
	ShareUpdateHen,
	SendVersion,
	MACResponse,
	SendMACHen,
	
	RequestLCVersion,
	LCVersionResponse,
	
	//avid
	ShareUpdateAVID,
	SendMACAVID,
	
	//svr
	RequestVersionNumber,
	VersionNumberResponse,
	BoundaryVersion,
	RequestVersionShare,
	VersionShareResponse
}
